export const generatePdf = async (elementId, options = {}) => {
    const element = document.getElementById(elementId);
    if (!element) {
        console.error('Element not found:', elementId);
        return null;
    }

    try {
        // 使用 html2canvas 渲染元素为 canvas
        const canvas = await html2canvas(element, {
            scale: 4, // 提高清晰度
            useCORS: true,
            backgroundColor: null,
        });

        // 创建 jsPDF 实例
        const doc = new jsPDF({
            unit: 'mm',
            format: 'a3', // 使用 A3 纸张增大显示效果
            putOnlyUsedFonts: true,
        });

        // 计算页面尺寸和缩放比例
        const imgWidth = canvas.width;
        const imgHeight = canvas.height;
        const pageWidth = doc.internal.pageSize.getWidth();
        const pageHeight = doc.internal.pageSize.getHeight();

        // 设置页面边距（左右各5mm，顶部5mm）
        const margin = 5;
        const width = pageWidth - 2 * margin;
        const height = pageHeight - margin;

        // 计算缩放比例
        let ratio = Math.min(width / imgWidth, height / imgHeight);

        // 添加图片到 PDF
        const imgData = canvas.toDataURL('image/png');
        doc.addImage(imgData, 'PNG', margin, margin, imgWidth * ratio, imgHeight * ratio);

        // 生成 Blob 对象
        const blob = doc.output('blob');
        
        // 返回 Blob 对象用于后续处理
        return blob;
    } catch (error) {
        console.error('PDF generation failed:', error);
        return null;
    }
};
